-------------------------------------------------------------------------------
-- Работа с файлами через контекстное меню (EMenu.dll). © SimSU
-------------------------------------------------------------------------------
local GUIDPlugin_EMenu = "742910F1-02ED-4542-851F-DEE37C2E13B2"
if not Plugin.Exist(GUIDPlugin_EMenu) then return end

---- Настройки
local function Settings()
-- Начало файла Profile\SimSU\Plugin_EMenu.cfg
return{
  KeyCopy="CtrlC"; --PriorCopy=50;
  KeyDel="CtrlD"; --PriorDel=50;
  KeyCut="CtrlX"; --PriorCut=50;
  KeyPaste="CtrlV"; --PriorPaste=50;
}
-- Конец файла Profile\SimSU\Plugin_EMenu.cfg
end

---- Локализация
_G.far.lang=far.lang or win.GetEnv("farlang")
-- Встроенные языки / Buildin laguages
local function Messages()
if far.lang=="Russian" then
-- Начало файла Profile\SimSU\Plugin_EMenuRussian.lng
return{
  DescrCopy="Копирование файла/ов через контекстное меню (EMenu.dll). © SimSU";
  DescrDel="Удаление файла/ов через контекстное меню (EMenu.dll). © SimSU";
  DescrCut="Вырезание файла/ов через контекстное меню (EMenu.dll). © SimSU";
  DescrPaste="Вставка файла/ов через контекстное меню (EMenu.dll). © SimSU";
}
-- Конец файла Profile\SimSU\Plugin_EMenuRussian.lng
else--if far.lang=="English" then
-- Begin of file Profile\SimSU\Plugin_EMenuEnglish.lng
return{
  DescrCopy="Копирование файла/ов через контекстное меню (EMenu.dll). © SimSU";
  DescrDel="Удаление файла/ов через контекстное меню (EMenu.dll). © SimSU";
  DescrCut="Вырезание файла/ов через контекстное меню (EMenu.dll). © SimSU";
  DescrPaste="Вставка файла/ов через контекстное меню (EMenu.dll). © SimSU";
}
-- End of file Profile\SimSU\Plugin_EMenuEnglish.lng
end end

local M=(loadfile(win.GetEnv("FARPROFILE").."\\SimSU\\Plugin_EMenu"..far.lang..".lng") or Messages)()
local S=(loadfile(win.GetEnv("FARLOCALPROFILE").."\\SimSU\\Plugin_EMenu.cfg") or loadfile(win.GetEnv("FARPROFILE").."\\SimSU\\Plugin_EMenu.cfg") or Settings)()

local SimSU=SimSU or {}
-------------------------------------------------------------------------------

function SimSU.Plugin_EMenu(cmd)
  Plugin.Command(GUIDPlugin_EMenu,"rclk_cmd:"..cmd)
end
-------------------------------------------------------------------------------
if not Macro then return {Plugin_EMenu=SimSU.Plugin_EMenu} end

local ok, mod = pcall(require,"SimSU.Plugin_EMenu"); if ok then SimSU=mod else _G.SimSU=SimSU end
-------------------------------------------------------------------------------

Macro {area="Shell"; key=S.KeyCopy; priority=S.PriorCopy; description=M.DescrCopy;
  condition=function() return Plugin.Exist(GUIDPlugin_EMenu) end;
  action=function() SimSU.Plugin_EMenu("copy") end;
}
Macro {area="Shell"; key=S.KeyDel; priority=S.PriorDel; description=M.DescrDel;
  condition=function() return Plugin.Exist(GUIDPlugin_EMenu) end;
  action=function() SimSU.Plugin_EMenu("delete") end;
}
Macro {area="Shell"; key=S.KeyCut; priority=S.PriorCut; description=M.DescrCut;
  condition=function() return Plugin.Exist(GUIDPlugin_EMenu) end;
  action=function() SimSU.Plugin_EMenu("cut") end;
}
Macro {area="Shell"; key=S.KeyPaste; priority=S.PriorPaste; description=M.DescrPaste;
  condition=function() return Plugin.Exist(GUIDPlugin_EMenu) end;
  action=function() Panel.SetPos(0,APanel.Current,not APanel.Folder and Panel.SetPosIdx(0,1),SimSU.Plugin_EMenu("paste")) end;
}
